home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / Technical.Notes / IIGS / TN.IIGS.023 < prev    next >
Encoding:
Text File  |  1988-12-16  |  2.7 KB  |  52 lines  |  [TEXT/pdos]

  1. Apple II
  2. Technical Notes
  3. _____________________________________________________________________________
  4.                                                   Developer Technical Support
  5.  
  6.  
  7. Apple IIGS
  8. #23:    Toolbox Use of DOC RAM
  9.  
  10. Revised by:    Matthew Denman & Matt Deatherage                 November 1988
  11. Written by:    Jim Merritt                                       October 1987
  12.  
  13. This Technical Note explains why you must be careful about which values you 
  14. store in the first page of the Ensoniq Digital Oscillator Chip (DOC) RAM when 
  15. using Note Synthesizer and MIDI Tool Sets on the Apple IIGS.
  16. _____________________________________________________________________________
  17.  
  18. The Apple IIGS Note Synthesizer uses an oscillator as a free-running timer to 
  19. clock the update of waveform envelopes when the DOC sounds notes.  To act as a 
  20. timer, the oscillator "plays" the contents of bytes $00 - $FF in DOC RAM at 
  21. zero volume.  Once it scans through the entire "waveform buffer," the 
  22. oscillator generates an interrupt, which the appropriate Note Synthesizer 
  23. routines service.
  24.  
  25. When using the Note Synthesizer or the Note Sequencer without the MIDI Tool 
  26. Set, there is no need to avoid using DOC RAM locations $00 - $FF for general 
  27. waveform storage.  More than one oscillator can play from the same waveform 
  28. buffer at the same time, so the function of the timer oscillator does not 
  29. affect normal use of the DOC for sound generation purposes in any way.  
  30. However, you should not fill the first page of DOC RAM with waveforms that are 
  31. delimited by zero bytes (as is sometimes appropriate in special situations, 
  32. discussion of which is beyond the scope of this Note).  The presence of zero 
  33. bytes in the first page of DOC RAM can cause serious system performance 
  34. degradation and can even cause the system to hang.  In particular, it is 
  35. always inappropriate to store arbitrary, non-waveform data in the first page 
  36. of DOC RAM since such data often includes zero bytes (which would be corrupted 
  37. were you to remove or modify them).
  38.  
  39. The Apple IIGS MIDI Tool Set also uses bytes $00 - $FF of DOC RAM for timing 
  40. purposes, but it uses a different oscillator than the Note Synthesizer.  If 
  41. you want MIDI time stamping, you may not use the first page (bytes $00 - $FF) 
  42. of DOC RAM for your own purposes since the MIDI Tool Set uses the contents of 
  43. those bytes for time-stamping purposes.
  44.  
  45. You may use the MIDI, Note Synthesizer, and Note Sequencer Tool Sets together, 
  46. but you must not use bytes $00 - $FF of DOC RAM for any purpose if using MIDI 
  47. time stamping, nor store zero bytes in this area when using the Note 
  48. Synthesizer.  You might consider it appropriate to avoid using the first page 
  49. of DOC RAM, if possible, to facilitate adding MIDI support to your application 
  50. at a later date.
  51.  
  52.